﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1;

namespace WebApplication
{
    class MyClass
    {
        public List<Hero> data { get; set; }
    }
    public partial class WebForm1 : System.Web.UI.Page
    {
        public int Id
        {
            get
            {
                int a = 0;
                int.TryParse(Request.QueryString["id"], out a);
                return a;
            }
        }
        public string Name
        {
            get
            {
                if (!string.IsNullOrWhiteSpace(Request.QueryString["name"]))
                {
                    return Request.QueryString["name"];
                }
                else if (!string.IsNullOrWhiteSpace(Request.Form["name"]))
                {
                    return Request.Form["name"];
                }
                return null;
            }
        }
        public string  Cmd { get { return  Request.QueryString["cmd"]; } }
        protected void Page_Load(object sender, EventArgs e)
        {

            Response.Clear();
            Response.AddHeader("Content-Type", "application/json");
            var ser = new System.Web.Script.Serialization.JavaScriptSerializer();
            #region 注释的api实现方式

            //if (Request.HttpMethod == "GET")
            //{
            //    if (Id == 0)//查一个
            //    {
            //        using (var db = new DataClasses1DataContext())
            //        {
            //            var cls = new MyClass();
            //            cls.data = db.Heros.ToList();
            //            var js = ser.Serialize(cls);
            //            Response.Write(js);
            //            Response.End();
            //        }
            //    }
            //    else if (Name != null)//查询
            //    {
            //        using (var db = new DataClasses1DataContext())
            //        {
            //            Response.Clear();
            //            var cls = new MyClass();
            //            cls.data = db.Heros.ToList().Where(i => i.name.Contains(Name)).ToList();
            //            var js = ser.Serialize(cls);
            //            Response.Write(js);
            //            Response.End();
            //        }
            //    }
            //    else//查全部
            //    {
            //        using (var db = new DataClasses1DataContext())
            //        {
            //            var s = new MyClass();

            //            s.data = db.Heros.ToList();
            //            var js = ser.Serialize(s);
            //            Response.Clear();
            //            Response.Write(js);
            //            Response.End();
            //        }
            //    }
            //}
            //else if (Request.HttpMethod == "PUT")//更新
            //{
            //    using (var db = new DataClasses1DataContext())
            //    {
            //        var hero = db.Heros.Where(i => i.id == Id).FirstOrDefault();
            //        hero.name = Name;
            //        db.SubmitChanges();
            //        //
            //        Response.Clear();
            //        Response.End();
            //    }
            //}
            //else if (Request.HttpMethod == "POST")//创建
            //{
            //    using (var db = new DataClasses1DataContext())
            //    {
            //        var hero = new Hero();
            //        hero.name = Name;
            //        db.Heros.Attach(hero);
            //        db.SubmitChanges();
            //        //
            //        Response.Clear();
            //        MyClass cls = new MyClass();
            //        cls.data = db.Heros.ToList();
            //        var js = ser.Serialize(cls);
            //        Response.Write(js);
            //        Response.End();
            //    }
            //}
            //else if (Request.HttpMethod == "DELETE")//删除
            //{
            //    using (var db = new DataClasses1DataContext())
            //    {
            //        var hero = db.Heros.Where(i => i.id == Id).FirstOrDefault();

            //        db.Heros.DeleteOnSubmit(hero);
            //        db.SubmitChanges();
            //        //
            //        Response.Clear();
            //        Response.End();
            //    }
            //}
            #endregion

            if (Cmd == null)
            {
                if (Id == 0)//查一个
                {
                    using (var db = new TestEntities())
                    {
                       
                        var js = ser.Serialize(db.Hero.ToList());
                        Response.Write(js);
                        Response.End();
                    }
                }
                else if (Name != null)//查询
                {
                    using (var db = new TestEntities())
                    {
                        Response.Clear();
                        
                        var ls= db.Hero.ToList().Where(i => i.name.Contains(Name)).ToList();
                        var js = ser.Serialize(ls);
                        Response.Write(js);
                        Response.End();
                    }
                }
                else//查全部
                {
                    using (var db = new TestEntities())
                    {
                        
                        var ls = db.Hero.ToList();
                        var js = ser.Serialize(ls);
                        Response.Clear();
                        Response.Write(js);
                        Response.End();
                    }
                }
            }
            else if (Cmd == "update")//更新
            {
                using (var db = new TestEntities())
                {
                    var hero = db.Hero.Where(i => i.id == Id).FirstOrDefault();
                    hero.name = Name;
                    db.SaveChanges();
                    
                    Response.Clear();
                    Response.Write(ser.Serialize(hero));
                    Response.End();
                }
            }
            else if (Cmd == "add")//创建
            {
                using (var db = new TestEntities())
                {
                    var hero = new Hero();
                    hero.name = Name;
                    db.Hero.Add(hero);
                    db.SaveChanges();
                    //
                    Response.Clear();
                    Response.Write(ser.Serialize(hero));
                    Response.End();
                }
            }
            else if (Cmd == "del")//删除
            {
                using (var db = new TestEntities())
                {
                    var hero = db.Hero.Where(i => i.id == Id).FirstOrDefault();

                    db.Hero.Remove(hero);
                    db.SaveChanges();
                    //
                    Response.Clear();
                    Response.End();
                }
            }
        }
    }
}